home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 2
/
Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso
/
Aminet
/
util
/
libs
/
MultiReq.lha
/
MultiReq
/
C
/
TestGads.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-11-12
|
11KB
|
743 lines
extern struct Screen *OpenScreen();
extern struct TextAttr Topaz80;
void itoa();
/* The Gadgets */
static struct Gadget FileReqGadg =
{
NULL,
9,159,
212,19,
GADGHCOMP,
RELVERIFY,
BOOLGADGET,
NULL,
NULL,
NULL,
NULL,
NULL,
ID_FILEREQ,
BORDER(BOOLBORDER,2,1,0)
};
static struct StringInfo FileSInfo =
{
NULL,
NULL,
0,
32,
0,
0,0,0,0,0,
0,
0,
NULL
};
static struct Gadget FileGadg =
{
&FileReqGadg,
55,146,
253,8,
GADGHCOMP,
RELVERIFY,
STRGADGET,
NULL,
NULL,
NULL,
NULL,
(APTR)&FileSInfo,
ID_FILE,
BORDER(FILLEDSTRBORDER,2,1,0)
};
static struct Gadget Current2Gadg =
{
&FileGadg,
436,129,
69,12,
GADGHCOMP,
RELVERIFY,
BOOLGADGET,
NULL,
NULL,
NULL,
NULL,
NULL,
ID_CURRENT2,
BORDER(FILLEDBORDER,2,1,0)
};
static struct Gadget Current1Gadg =
{
&Current2Gadg,
436,100,
69,12,
GADGHCOMP,
RELVERIFY,
BOOLGADGET,
NULL,
NULL,
NULL,
NULL,
NULL,
ID_CURRENT1,
BORDER(FILLEDBORDER,2,1,0)
};
static struct StringInfo Drawer2SInfo =
{
NULL,
NULL,
0,
160,
0,
0,0,0,0,0,
0,
0,
NULL
};
static struct Gadget Drawer2Gadg =
{
&Current1Gadg,
77,131,
343,8,
GADGHCOMP,
RELVERIFY,
STRGADGET,
NULL,
NULL,
NULL,
NULL,
(APTR)&Drawer2SInfo,
ID_DRAWER2,
BORDER(FILLEDSTRBORDER,2,1,0)
};
static struct StringInfo Drawer1SInfo =
{
NULL,
NULL,
0,
160,
0,
0,0,0,0,0,
0,
0,
NULL
};
static struct Gadget Drawer1Gadg =
{
&Drawer2Gadg,
77,102,
343,8,
GADGHCOMP,
RELVERIFY,
STRGADGET,
NULL,
NULL,
NULL,
NULL,
(APTR)&Drawer1SInfo,
ID_DRAWER1,
BORDER(FILLEDSTRBORDER,2,1,0)
};
static struct Gadget Auto2Gadg =
{
&Drawer1Gadg,
112,115,
78,12,
GADGHNONE,
RELVERIFY,
BOOLGADGET,
NULL,
NULL,
NULL,
NULL,
NULL,
ID_AUTO2,
BORDER(FILLEDBORDER,2,1,3)
};
static struct Gadget Auto1Gadg =
{
&Auto2Gadg,
112,86,
78,12,
GADGHNONE,
RELVERIFY,
BOOLGADGET,
NULL,
NULL,
NULL,
NULL,
NULL,
ID_AUTO1,
BORDER(FILLEDBORDER,2,1,3)
};
static struct Gadget InfoGadg =
{
&Auto1Gadg,
391,71,
114,12,
GADGHCOMP,
RELVERIFY,
BOOLGADGET,
NULL,
NULL,
NULL,
NULL,
NULL,
ID_INFO,
BORDER(CYCLEIMG+FILLEDBORDER,2,1,0)
};
static struct StringInfo HideSInfo =
{
NULL,
NULL,
0,
32,
0,
0,0,0,0,0,
0,
0,
NULL
};
static struct Gadget HideGadg =
{
&InfoGadg,
229,73,
93,8,
GADGHCOMP,
RELVERIFY,
STRGADGET,
NULL,
NULL,
NULL,
NULL,
(APTR)&HideSInfo,
ID_HIDE,
BORDER(FILLEDSTRBORDER,2,1,0)
};
static struct StringInfo ShowSInfo =
{
NULL,
NULL,
0,
32,
0,
0,0,0,0,0,
0,
0,
NULL
};
static struct Gadget ShowGadg =
{
&HideGadg,
61,73,
93,8,
GADGHCOMP,
RELVERIFY,
STRGADGET,
NULL,
NULL,
NULL,
NULL,
(APTR)&ShowSInfo,
ID_SHOW,
BORDER(FILLEDSTRBORDER,2,1,0)
};
static struct Gadget DirectroyGadg =
{
&ShowGadg,
391,57,
114,12,
GADGHCOMP,
RELVERIFY,
BOOLGADGET,
NULL,
NULL,
NULL,
NULL,
NULL,
ID_DIRECTORY,
BORDER(CYCLEIMG+FILLEDBORDER,2,1,0)
};
static UBYTE TopEdgeBuff[5];
static struct StringInfo TopEdgeSInfo =
{
TopEdgeBuff,
NULL,
0,
5,
0,
0,0,0,0,0,
0,
0,
NULL
};
static struct Gadget TopEdgeGadg =
{
&DirectroyGadg,
221,59,
41,8,
GADGHCOMP,
RELVERIFY+LONGINT,
STRGADGET,
NULL,
NULL,
NULL,
NULL,
(APTR)&TopEdgeSInfo,
ID_TOPEDGE,
BORDER(FILLEDSTRBORDER,2,1,0)
};
static UBYTE LeftEdgeBuff[5];
static struct StringInfo LeftEdgeSInfo =
{
LeftEdgeBuff,
NULL,
0,
5,
0,
0,0,0,0,0,
0,
0,
NULL
};
static struct Gadget LeftEdgeGadg =
{
&TopEdgeGadg,
93,59,
41,8,
GADGHCOMP,
RELVERIFY+LONGINT,
STRGADGET,
NULL,
NULL,
NULL,
NULL,
(APTR)&LeftEdgeSInfo,
ID_LEFTEDGE,
BORDER(FILLEDSTRBORDER,2,1,0)
};
static UBYTE OKTextBuff[9]="go on";
static struct StringInfo OKTextSInfo =
{
OKTextBuff,
NULL,
0,
9,
0,
0,0,0,0,0,
0,
0,
NULL
};
static struct Gadget OKTextGadg =
{
&LeftEdgeGadg,
427,45,
75,8,
GADGHCOMP,
RELVERIFY,
STRGADGET,
NULL,
NULL,
NULL,
NULL,
(APTR)&OKTextSInfo,
ID_OKTEXT,
BORDER(FILLEDSTRBORDER,2,1,0)
};
static UBYTE TitleBuff[54]="The multitasking FileRequester © by Andreas Krebs";
static struct StringInfo TitleSInfo =
{
TitleBuff,
NULL,
0,
54,
0,
0,0,0,0,0,
0,
0,
NULL
};
static struct Gadget TitleGadg =
{
&OKTextGadg,
69,45,
253,8,
GADGHCOMP,
RELVERIFY,
STRGADGET,
NULL,
NULL,
NULL,
NULL,
(APTR)&TitleSInfo,
ID_TITLE,
BORDER(FILLEDSTRBORDER,2,1,0)
};
static struct Gadget ScrModeGadg =
{
&TitleGadg,
349,29,
83,12,
GADGHCOMP,
RELVERIFY,
BOOLGADGET,
NULL,
NULL,
NULL,
NULL,
NULL,
ID_SCRMODE,
BORDER(CYCLEIMG+FILLEDBORDER,2,1,0)
};
struct Gadget ScreenGadg =
{
&ScrModeGadg,
74,29,
83,12,
GADGHCOMP,
RELVERIFY,
BOOLGADGET,
NULL,
NULL,
NULL,
NULL,
NULL,
ID_SCREEN,
BORDER(CYCLEIMG+FILLEDBORDER,2,1,0)
};
/* My texts */
static UBYTE DrawerTxt[]="Drawer:";
static UBYTE CurrentTxt[]="Current:";
static struct MRText MyTexts[]=
{
{ 8, 25, 2, 36, (UBYTE *)"Define parameters for FileRequester:" },
{ 14, 37, 1, 7, (UBYTE *)"Screen:" },
{ 193, 37, 1, 19, (UBYTE *)"Custom screen mode:" },
{ 384, 37, 1, 4, (UBYTE *)"Lace" },
{ 14, 51, 1, 6, (UBYTE *)"Title:" },
{ 340, 51, 1, 10, (UBYTE *)"Okay text:" },
{ 14, 65, 1, 9, (UBYTE *)"LeftEdge:" },
{ 150, 65, 1, 8, (UBYTE *)"TopEdge:" },
{ 323, 65, 2, 8, (UBYTE *)"Display:" },
{ 418, 65, 1, 9, (UBYTE *)"Directory" },
{ 14, 79, 1, 5, (UBYTE *)"Show:" },
{ 182, 79, 1, 5, (UBYTE *)"Hide:" },
{ 458, 79, 1, 5, (UBYTE *)".info" },
{ 8, 94, 2, 11, (UBYTE *)"Directory1:" },
{ 14, 108, 1, 7, (UBYTE *)DrawerTxt },
{ 443, 108, 1, 7, (UBYTE *)CurrentTxt },
{ 8, 123, 2, 11, (UBYTE *)"Directory2:" },
{ 14, 137, 1, 7, (UBYTE *)DrawerTxt },
{ 443, 137, 1, 7, (UBYTE *)CurrentTxt },
{ 8, 152, 2, 5, (UBYTE *)"File:" },
{ 40, 171, 2, 19, (UBYTE *)"Start FileRequester" },
{ 297, 171, 2, 14, (UBYTE *)"Return status:" },
{ 8, 190, 2, 9, (UBYTE *)"Selected:" },
{ -1, -1, -1, -1, (UBYTE *)-1L } /* no further entries */
};
void SetGadgetBuffers(fr)
register struct FileReq *fr;
{
FileSInfo.Buffer=fr->FileBuff;
ShowSInfo.Buffer=fr->ShowBuff;
HideSInfo.Buffer=fr->HideBuff;
Drawer1SInfo.Buffer=fr->FileList[0].DrawerBuff;
StrCpy((UBYTE *)"SYS:",Drawer1SInfo.Buffer);
fr->FileList[0].AutoRead=DO_AUTOREAD;
Drawer2SInfo.Buffer=fr->FileList[1].DrawerBuff;
GetCurrentPath(Drawer2SInfo.Buffer);
fr->FileList[1].AutoRead=DO_AUTOREAD;
fr->TitleString=TitleBuff;
fr->OkayString=OKTextBuff;
}
void GetCurrent(win,fr,num)
register struct Window *win;
register struct FileReq *fr;
{
GetCurrentPath(fr->FileList[num].DrawerBuff);
if(!num)
RefreshGList(&Drawer1Gadg,win,NULL,1L);
else
RefreshGList(&Drawer2Gadg,win,NULL,1L);
}
void CreateDisplay(win,rp)
register struct Window *win;
register struct RastPort *rp;
{
SetDrMd(rp,JAM1);
SetAPen(rp,3L);
RectFill(rp,(ULONG)win->BorderLeft,(ULONG)win->BorderTop,
(ULONG)(win->Width - win->BorderRight -1),
(ULONG)(win->Height - win->BorderBottom-1));
DrawGadgetBorder(&ScreenGadg,win,-1L);
SetDrMd(rp,JAM1); /* make sure that DrawMode is JAM1 */
DrawTexts(rp,MyTexts);
}
static UBYTE ModeTxt[][6]=
{
" Lace ",
"NoLace"
};
void SetScreenMode(rp,mode)
register struct RastPort *rp;
register BOOL mode;
{
SetDrMd(rp,JAM2);
SetAPen(rp,1L);
SetBPen(rp,0L);
Move(rp,376L,37L);
Text(rp,ModeTxt[mode],6L);
}
static UBYTE TypeTxt[][6]=
{
"WBench",
"Custom"
};
void SetScreenType(win,rp,type,mode)
register struct Window *win;
register struct RastPort *rp;
register BOOL type,mode;
{
SetDrMd(rp,JAM2);
SetAPen(rp,1L);
SetBPen(rp,0L);
Move(rp,102L,37L);
Text(rp,TypeTxt[type],6L);
if(type)
{
OnGadget(&ScrModeGadg,win,NULL);
DrawGadgetBorder(&ScrModeGadg,win,1L);
SetScreenMode(rp,mode);
}
else
OffGadget(&ScrModeGadg,win,NULL);
}
void SetDirectory(rp,num)
register struct RastPort *rp;
register UWORD num;
{
UBYTE txt;
SetDrMd(rp,JAM2);
SetAPen(rp,1L);
SetBPen(rp,0L);
txt=(UBYTE)num+'1';
Move(rp,490L,65L);
Text(rp,&txt,1L);
}
static UBYTE InfoTxt[][4] =
{
"Hide",
"Show"
};
void SetInfo(rp,info)
register struct RastPort *rp;
register BOOL info;
{
SetDrMd(rp,JAM2);
SetAPen(rp,1L);
SetBPen(rp,0L);
Move(rp,418L,79L);
Text(rp,InfoTxt[info],4L);
}
void SetAutoRead(win,rp,gadg,autoread)
register struct Window *win;
register struct RastPort *rp;
register struct Gadget *gadg;
register BOOL autoread;
{
if(autoread)
gadg->UserData=BORDER(FILLEDBORDER,1,2,0);
else
gadg->UserData=BORDER(FILLEDBORDER,2,1,3);
DrawGadgetBorder(gadg,win,1L);
SetDrMd(rp,JAM1);
SetAPen(rp,(ULONG)(autoread+1));
Move(rp,(ULONG)(gadg->LeftEdge+7),(ULONG)(gadg->TopEdge+8));
Text(rp,"AutoRead",8L);
}
void SetAutoGadgets(win,rp,fr)
register struct Window *win;
register struct RastPort *rp;
register struct FileReq *fr;
{
SetAutoRead(win,rp,&Auto1Gadg,fr->FileList[0].AutoRead);
SetAutoRead(win,rp,&Auto2Gadg,fr->FileList[1].AutoRead);
}
void SetEdge(win,fr)
register struct Window *win;
register struct FileReq *fr;
{
itoa(fr->LeftEdge,LeftEdgeBuff);
LeftEdgeSInfo.LongInt=(ULONG)fr->LeftEdge;
itoa(fr->TopEdge,TopEdgeBuff);
TopEdgeSInfo.LongInt=(ULONG)fr->TopEdge;
RefreshGList(&LeftEdgeGadg,win,NULL,2L);
}
void GetEdge(fr)
register struct FileReq *fr;
{
fr->LeftEdge=(UWORD)LeftEdgeSInfo.LongInt;
fr->TopEdge=(UWORD)TopEdgeSInfo.LongInt;
}
void itoa(i,s)
register UWORD i;
register UBYTE *s;
{
register BOOL zero=(BOOL)FALSE;
register UWORD div;
register UBYTE digit;
for(div=10000;div>1;div/=10)
{
digit=i/div;
if(zero || digit)
{
*s++=digit+'0';
zero=(BOOL)TRUE;
}
i=i%div;
}
*s++=i+'0';
*s=0;
}
static struct NewScreen NewTestScreen =
{
0,0,
640,400,
2,
1,3,
HIRES|LACE,
CUSTOMSCREEN|SCREENBEHIND,
&Topaz80,
(UBYTE *)"Custom screen for multireq.library test program",
NULL,
NULL
};
struct Screen *GetScreen(type,mode)
register UWORD type,mode;
{
register struct Screen *scrn;
if(mode)
{
NewTestScreen.Height=200;
NewTestScreen.ViewModes=HIRES;
}
else
{
NewTestScreen.Height=400;
NewTestScreen.ViewModes=HIRES|LACE;
}
if(type)
scrn=OpenScreen(&NewTestScreen);
else
scrn=NULL;
return(scrn);
}
static UBYTE StatusTxt[][11] =
{
"Error ",
"Cancel ",
"Close ",
"File Return",
"DoubleClick",
"Okay "
};
void WriteStatus(rp,fr)
register struct RastPort *rp;
register struct FileReq *fr;
{
register UWORD len;
SetDrMd(rp,JAM2);
SetAPen(rp,1L);
SetBPen(rp,3L);
Move(rp,417L,171L);
Text(rp,StatusTxt[fr->ReturnStatus],11L);
SetDrMd(rp,JAM1);
SetAPen(rp,3L);
RectFill(rp,88L,183L,506L,191L);
len=StrLen(fr->FileNameBuff);
if(len>52) len=52;
SetAPen(rp,1L);
Move(rp,88L,190L);
Text(rp,fr->FileNameBuff,(ULONG)len);
}